/*
 * 许多研究表明，微笑益处多多。编写一个程序，生成以下格式的输出：
 * *******************************
 * Smile!Smile!Smile!
 * Smile!Smile!
 * Smile!
 * *******************************
 * 该程序要定义一个函数，该函数被调用一次打印一次“Smile!”，根据程序的需要使用该函数。
 * */

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

void print_smile(){
	printf("Smile!");
}

bool is_valid_long(const char *input){ // 用const告诉别人自己不会修改这个函数
	char *endptr;                    // 用于存储strtod函数停止转换的位置
	strtol(input,&endptr,10);           // 把input的字符逐一写入*endptr，使用十进制转换
	return *endptr=='\0';            // null终止符，用于表示字符串的结束
}


int main(){
	char input[100];
	int num;
	while(1){
		printf("请问你要打印多少重微笑？(q退出)");
		scanf("%s",input);
		if(input[0]=='q'){
			printf("退出。\n");
			break;
		}
		else if(!is_valid_long(input)){
			printf("输入不合法！\n");
			continue;
		}
		else{
			num=atoi(input);
			for(int i=num;i>0;i--){
				for(int j=i;j>0;j--){
					print_smile();
				}
				printf("\n");
			}	
		}
	}
}
